// index.ts

import HeroHelper from "../../helpers/heroHelper";

import heroesData from "../../data/heros";
// import { IHero } from "../../typings/types/hero";

// 获取应用实例
// const app = getApp<IAppOption>();

Page({
  data: {
    motto: "点击随机选择英雄",
    heroList: [],
    hero: {},
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse("button.open-type.getUserInfo"),
    canIUseGetUserProfile: false,
    canIUseOpenData:
      wx.canIUse("open-data.type.userAvatarUrl") &&
      wx.canIUse("open-data.type.userNickName"), // 如需尝试获取用户信息可改为false
  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: "../logs/logs",
    });
  },

  // 随机英雄
  randomHeroTap() {
    const { heroList } = this.data;
    const index =
      Math.floor(Math.random() * (this.data.heroList.length - 1 - 0)) + 0;
    console.log(heroList[index])
      this.setData({
      hero: heroList[index],
    });
  },

  onLoad() {
    // @ts-ignore
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true,
      });
    }
    this.getAllHeroList();
    this.randomHeroTap();
  },

  // 获取所有英雄
  getAllHeroList() {
    const heroList: any = [];
    heroesData.forEach((item) => {
      heroList.push(
        new HeroHelper({
          id: item.ename,
          name: item.cname,
          avatar: `${item.ename}`,
          heroType: item.hero_type,
          heroType2: item.hero_type2,
          heroPos: item.hero_pos,
          heroPos2: item.hero_pos2,
        })
      );
    });
    this.setData({
      heroList,
    });
  },

  getUserProfile() {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: "展示用户信息", // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res);
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true,
        });
      },
    });
  },
  getUserInfo(e: any) {
    // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
    console.log(e);
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true,
    });
  },
});
